package com.zenithmind.classroom.pojo.dto;

import com.zenithmind.common.query.BaseQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 课时查询DTO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "课时查询DTO")
public class LessonQueryDTO extends BaseQuery {

    /**
     * 课程ID
     */
    @Schema(description = "课程ID", example = "1234567890")
    private String courseId;

    /**
     * 章节ID
     */
    @Schema(description = "章节ID", example = "1234567890")
    private String chapterId;

    /**
     * 课时标题（模糊查询）
     */
    @Schema(description = "课时标题（模糊查询）", example = "Java环境搭建")
    private String title;

    /**
     * 课时类型（1-视频，2-音频，3-文档，4-图片，5-直播）
     */
    @Schema(description = "课时类型（1-视频，2-音频，3-文档，4-图片，5-直播）", example = "1")
    private Integer type;

    /**
     * 状态（0-草稿，1-发布，2-下线）
     */
    @Schema(description = "状态（0-草稿，1-发布，2-下线）", example = "1")
    private Integer status;

    /**
     * 是否免费（0-收费，1-免费）
     */
    @Schema(description = "是否免费（0-收费，1-免费）", example = "1")
    private Integer isFree;

    /**
     * 是否试看（0-否，1-是）
     */
    @Schema(description = "是否试看（0-否，1-是）", example = "1")
    private Integer isPreview;

    /**
     * 创建者ID
     */
    @Schema(description = "创建者ID", example = "1234567890")
    private String creatorId;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间", example = "2024-01-01 00:00:00")
    private String startTime;

    /**
     * 结束时间
     */
    @Schema(description = "结束时间", example = "2024-12-31 23:59:59")
    private String endTime;
}
